public class hebingshuzu {//双指针法
    public static void merge(int[] num1, int m, int[] num2, int n) {//定义一个静态方法merge，用于合并两个有序数组
        int a=m-1;//num1 的最后一个有效元素
        int b=n-1;//num2 的最后一个有效元素
        int c=m+n -1;//num1的最后一个位置
        while(a>=0 && b>=0){//循环，从后向前遍历num1和num2,直到其中一个数组的所有元素都被处理完
            if(num1[a]>num2[b]){//两个元素比较大小
                num1[c--]=num1[a--];
    }else{
        num1[c--]=num2[b--];//将n2放到n1的位置，c和d都向前移动一位
    }
}
        while(b>=0){///如果num1已经处理完，则将num2的剩下元素拷贝到num1中
            num1[c--]=num2[b--];
        }
    }
    public static void main(String[] args) {
        int[] num1 = {1, 2, 3, 0, 0, 0};//有效数组123
        int m = 3;
        int[] num2 = {2, 5, 6};//有效数组256
        int n = 3;
        merge(num1, m, num2, n);//调用merge方法，合并num1和num2
        for (int num : num1) {//合并n1，输出每一个元素
            System.out.print(num + " ");
        }
    }
}